Data 수정

✒️ 2025-05-28 16:35 내용 수정


DML을 이용한 데이터 다루기


1. 데이터 삽입

INSERT INTO 테이블명(컬럼명1, 컬럼명2,...) VALUES(값1, 값2,...);
INSERT INTO 테이블명 VALUES(값1, 값2,...); -- 무조건 컬럼 개수만큼 값을 넣어야 함

1) 일반 테이블

CREATE TABLE COMPUTER(
	ID NUMBER CONSTRAINT IN_PK PRIMARY KEY,
	NAME VARCHAR2(100),
	OS VARCHAR2(100),
	"POWER" CHAR(1) DEFAULT 'O' NOT NULL CONSTRAINT POWER_CHECK CHECK("POWER"='O' OR "POWER"='X'),
	STARTDATE DATE CONSTRAINT START_DATE CHECK(STARTDATE >= TO_DATE('2023-10-25', 'YYYY-MM-DD')),
	CONSTRAINT NAME_UN UNIQUE (NAME)
);
/* START_DATE 제약 조건이 맞지 않아 데이터를 추가할 수 없다.
INSERT INTO COMPUTER(ID, NAME, OS, "POWER", STARTDATE)
VALUES (1, MYPC, WINDOWS, O, TO_DATE('2021-03-23', 'YYYY-MM-DD'));
*/
INSERT INTO COMPUTER(ID, NAME, OS, "POWER", STARTDATE)
VALUES (1, 'PC', 'WINDOWS', 'O', TO_DATE('2023-11-05', 'YYYY-MM-DD'));
/* 같은 ID를 가진 데이터는 추가할 수 없다.
INSERT INTO COMPUTER(ID, NAME, OS, "POWER", STARTDATE)
VALUES (1, 'PC2', 'LINUX', 'X', TO_DATE('2023-11-25', 'YYYY-MM-DD'));
*/
INSERT INTO COMPUTER(ID, NAME, OS, "POWER", STARTDATE)
VALUES (2, 'PC2', 'LINUX', 'X', TO_DATE('2023-11-25', 'YYYY-MM-DD'));
-- "POWER"에 DEFAULT 값을 넣고 데이터를 추가한다.
INSERT INTO COMPUTER(ID, NAME, OS, STARTDATE)
VALUES (3, 'HOME', 'MAC', TO_DATE('2023-12-17', 'YYYY-MM-DD'));
-- 컬럼명을 생략하고, 컬럼 개수에 맞는 데이터를 작성해서 데이터를 추가한다.
INSERT INTO COMPUTER
VALUES (4, 'WORK', 'CENTOS', 'X', TO_DATE('2023-10-30', 'YYYY-MM-DD'));

INSERT 1.png

2) FK가 있는 테이블

-- 학생 테이블 생성
CREATE TABLE STUDENT(
	ID NUMBER PRIMARY KEY,
	STD_NAME VARCHAR2(100),
	STD_GRADE NUMBER,
	STD_PW VARCHAR2(100),
	STD_MAJOR VARCHAR2(100),
	STD_SCORE NUMBER
);

-- 수업 수강인원 테이블 생성
CREATE TABLE CLASS(
	ID VARCHAR2(100) PRIMARY KEY,
	CLASS_ROOM NUMBER,
	PROFESSOR VARCHAR2(100),
	STD_ID NUMBER,
	CONSTRAINT STD_FK FOREIGN KEY(STD_ID) REFERENCES STUDENT(ID)
);
-- 부모 테이블에 데이터 추가
INSERT INTO STUDENT
VALUES(2020372035, '홍길동', 2, 'PASSWORD123', '전자공학과', 87);
  
-- 자식 테이블에 데이터 추가()
INSERT INTO CLASS
VALUES(1, 154, '김교수', 2020372035);

INSERT 2.png


2. 데이터 수정

UPDATE 테이블명 SET 기존컬럼명 = 새로운값; -- 해당 컬럼 전체 변경
UPDATE 테이블명 SET 기존컬럼명 = 새로운값 WHERE 조건식; -- 조건에 맞는 컬럼만 변경
INSERT INTO STUDENT
VALUES(2020372035, '홍길동', 2, 'PASSWORD123', '전자공학과', 87);

INSERT INTO STUDENT
VALUES(2019372013, '고길동', 3, '321DROWSSAP', '물리학과', 92);

INSERT INTO STUDENT
VALUES(202032001, '유성', 2, '3PAS2SWO1RD', '기계공학과', 75);

INSERT INTO CLASS
VALUES(1, 154, '김교수', 2020372035);

INSERT INTO CLASS
VALUES(2, 200, '최교수', 2019372013);

UPDATE 1.png

UPDATE STUDENT
SET STD_MAJOR = '전자공학과';

UPDATE 2.png

UPDATE STUDENT
SET STD_SCORE = 100
WHERE STD_NAME = '유성';

UPDATE 3.png


3. 데이터 삭제

DELETE FROM 테이블명 WHERE 조건식;
DELETE FROM CLASS WHERE STD_ID = 2019372013; -- CLASS 테이블에서 데이터 제거
DELETE FROM STUDENT WHERE ID = 2019372013; -- STUDENT 테이블에서 데이터 제거

DELETE 1.png
DELETE 2.png